# 字符串

# 1. 字符串的换行
# a = 'hello world'    # 字符串的表示可以是用单引号‘ ‘ 或者用双引号” “
# b = "hello world"

# c =  'hello'\
#      'world'
# print(c)       # \表示字符串换行，且\所在行不能添加注释,另外打印输出时，两行内容是连接着的
#
# d = """
# hello
# world
# """
# print(d)      #三个”“ 也表示字符串换行，但是打印时，两行的内容在不同行上呈现

# 2. 字符串的访问
# 通过下标访问里面的字符，下标是从0开始的
# name = 'abcdfhskjghsfius'        #定义一个字符串
# print(name[1])                   #访问字符串下标为1的元素

# 3.切片（截取字符串的一部分）
#   格式 [开始下标：结束下标：步长]

# name = 'abcdfhskjghsfius'        #定义一个字符串
# print(name[2:7:1])               #截取下标为2开始到下标为6的字符串  注意：字符串的下标是从0开始 另外字符串的结束下标的字符取不到
# print(name[2:7:2])               #截取下标为2开始到下标为6的字符串 步长为2
# print(name[:7:1])                #若开始下标或者结束下标不写 则默认从下标为0或最后一个开始（或结束）
# print(name[2::1])
# print(name[::-1])               # 相当于实现了字符串的逆序输出

# 4. 查找
# str = "hello world and python and java and c++"

# print(str.find('and'))         # 实现从头开始查找and所在的位置 （若无其他约束，则找到最低下标即停）
# print(str.find('and',15,30))   # 后面的15，30 相当于是划定了查找范围
# print(str.find('atd'))         # 若查找内容不存在 则会返回信息-1 不会报错
# print(str.rfind('and'))        # 实现从右开始查找and所在的位置

# print(str.index('and'))          # 用index 也能实现字符查找功能
# print(str.index('and',15,30))
# print(str.index('atd'))          # 用index查找 若无查找内容则会报错 报错信息为：ValueError: substring not found

# 5.统计
# str = "hello world and python and java and c++"
# print(str.count('and'))            # 实现字符串的统计功能

# 6.替换
# replace返回一个新的字符串，原本的字符串没有改变
# str = "hello world and python and java and c++"
# newstr = str.replace('and','xxx')     #替换功能的格式：原字符串变量.replace（’被替换内容‘，’替换后内容‘）
# print(newstr)
# print(str)

# 7.字符串的分割
# str2 = ' java,c++,c,python,js '     # 定义一个字符串
# list = str2.split(',')              # 实现字符串以’,’进行分割 并以列表形式表现
# print(list)

# 8.字符串的连接
# names = ['张三','李四','王五']          # 定义一个字符串
# str3 = '-'.join(names)               # 实现将原字符变量 names内的各元素 以 '-' 连接起来
# print(str3)

# 9.输出格式
#   实现格式：  字符变量.功能名（）
# str = " hello world and python and java and c++ "
#
# print(str.capitalize())    # 实现的是 将str这个字符变量内的字符首字母大写   格式：字符变量.功能名（）
# print(str.title())         # 实现的是每一个单词首字母大写
# print(str.upper())         # 实现所有字母大写
# print(str.lower())         # 实现所有字母小写
# print(str.strip())         # 实现去除字符串两端空格

# 10.判断开头、结尾
    # 格式： 字符变量.startswith(' ')   且输出的格式为bool布尔型
    #       字符变量.endswith(' ')
# filename = 'demo1.py'
# print(filename.startswith('demo'))     # 实现判断该字符串是否以' '内给定的方式开始
# print(filename.endswith('py'))         # 实现判断该字符串是否以' '内给定的方式结束

# 11.判断字符串内容类型
# str1 = '123'
# str2 = 'abc'
# str3 = '123abc'
# str4 = '   '
#
# print(str1.isdigit(),end=',')   # 判断字符变量str1 是否是数字类型
# print(str1.isalpha(),end=',')   # 判断字符变量str1 是否是纯字母类型
# print(str1.isalnum(),end=',')   # 判断字符变量str1 是否是英文数字类型
# print(str1.isspace())           # 判断字符变量str1 是否是空格类型
#
# print(str2.isdigit(),end=',')   # 判断字符变量str2 是否是数字类型
# print(str2.isalpha(),end=',')   # 判断字符变量str2 是否是纯字母类型
# print(str2.isalnum(),end=',')   # 判断字符变量str2 是否是英文数字类型
# print(str2.isspace())           # 判断字符变量str2 是否是空格类型
#
# print(str3.isdigit(),end=',')   # 判断字符变量str3 是否是数字类型
# print(str3.isalpha(),end=',')   # 判断字符变量str3 是否是纯字母类型
# print(str3.isalnum(),end=',')   # 判断字符变量str3 是否是英文数字类型
# print(str3.isspace())           # 判断字符变量str3 是否是空格类型
#
# print(str4.isdigit(),end=',')   # 判断字符变量str4 是否是数字类型
# print(str4.isalpha(),end=',')   # 判断字符变量str4 是否是纯字母类型
# print(str4.isalnum(),end=',')   # 判断字符变量str4 是否是英文数字类型
# print(str4.isspace())           # 判断字符变量str4 是否是空格类型